package singleList;

import listinterface.IList;

public class Test01 {
    public static void main1(String[] args) {

        MySingleList mySingleList = new MySingleList();
        mySingleList.creatList();

        System.out.println("=============================");

        mySingleList.display();

        System.out.println("==================================");

        System.out.println(mySingleList.size());

        System.out.println("==================================");

        System.out.println(mySingleList.contains(56));

        System.out.println("===================================");

        IList mySingleList1 = new MySingleList();
        mySingleList1.addLast(12);
        mySingleList1.addLast(23);
        mySingleList1.addLast(34);
        mySingleList1.addLast(45);
        mySingleList1.addLast(56);
        mySingleList1.display();
        System.out.println("====================================");

//        try{
//            mySingleList1.addIndex(6,99);
//        } catch(ListIndexOutOfBoundsException e) {
//            e.printStackTrace();
//        }
//        mySingleList1.display();

        System.out.println("===========================");

        mySingleList1.remove(56);
        mySingleList1.display();
//        mySingleList1.clear();
        System.out.println("================================");
//        mySingleList1.reverse();
        mySingleList1.display();
        System.out.println("================1");

        MySingleList.ListNode node = mySingleList.reverse();
        ((MySingleList) mySingleList1).display2(node);


    }

    public static void main(String[] args) {
        MySingleList mySingleList = new MySingleList();
        mySingleList.addLast(12);
        mySingleList.addLast(23);
        mySingleList.addLast(34);
        mySingleList.addLast(45);
        mySingleList.addLast(56);
        mySingleList.addLast(67);

        //由于middleNode() 返回的是一个静态内部类 ， 所以需要用一个静态内部类实例来接收一下
        MySingleList.ListNode node = mySingleList.middleNode();
        if(node == null){
            System.out.println("链表为空....");
        }else {
            //由于我们要获取 node 节点的值 val ， 而 val 是一个私有方法 ， 所以还需要在 ListNode中写一个 get 方法
            System.out.println(node.getVal());
        }
        System.out.println("==========================");
        System.out.println(mySingleList.KthToLast(2));
    }
}
